<!DOCTYPE html>
<html lang="ar">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body class="rtl">
		<h1>[name]</h1>

		<p class="desc">فئة تمثل لونًا.</p>

		<p>
		التكرار عبر مثيل [name] سيعود بمكوناته (r، g، b) بالترتيب المقابل.
		</p>
		
		<h2>أمثلة الكود</h2>
		
		<p>يمكن تهيئة Color بأي من الطرق التالية:</p>
		<code>
		// المُنشئ الفارغ - سيكون الافتراضي أبيض
		const color1 = new THREE.Color();
		
		// لون سداسي عشري (مستحسن)
		const color2 = new THREE.Color( 0xff0000 );
		
		// سلسلة RGB
		const color3 = new THREE.Color("rgb(255، 0، 0)");
		const color4 = new THREE.Color("rgb(100٪، 0٪، 0٪)");
		
		// اسم لون X11 - يتم دعم جميع أسماء الألوان الـ 140.
		// يرجى ملاحظة عدم وجود CamelCase في الاسم
		const color5 = new THREE.Color( 'skyblue' );
		
		// سلسلة HSL
		const color6 = new THREE.Color("hsl(0، 100٪، 50٪)");
		
		// قيم RGB منفصلة بين 0 و 1
		const color7 = new THREE.Color( 1، 0، 0 );
		</code>
		
		<h2>المنشئ (Constructor)</h2>
		
		<h3>
		[name]( [param:Color_Hex_or_String r]، [param:Float g]، [param:Float b] )
		</h3>
		<p>
		[page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
		[page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
		[page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
		
		يرجى ملاحظة أن الطريقة القياسية لتحديد اللون في three.js هي باستخدام [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثية سداسية عشرية]، وتستخدم هذه الطريقة في جميع أنحاء المستندات المتبقية.<br /><br />
		
		عند تعريف جميع المعاملات ثم [page:Color_Hex_or_String r] هو المكوِّن الأحمر و [page:Float g] هو المكوِّن الأخضر و [page:Float b] هو المكوِّن الأزرق للون.<br />
		عند تعريف [page:Color_Hex_or_String r] فقط:<br />
		</p>
		
		<ul>
			<li>
			يمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] يمثل اللون (مستحسن).
			</li>
			<li>يمكن أن يكون مثيل Color آخر.</li>
			<li>
				يمكن أن يكون سلسلة على طراز CSS. على سبيل المثال:
				<ul>
					<li>'rgb(250، 0،0)'</li>
					<li>'rgb(100٪،0٪،0٪)'</li>
					<li>'hsl(0، 100٪، 50٪)'</li>
					<li>'#ff0000'</li>
					<li>'#f00'</li>
					<li>'red'</li>
				</ul>
			</li>
		</ul>
			
		<h2>الخصائص (Properties)</h2>
			
		<h3>[property:Boolean isColor]</h3>
		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
			
		<h3>[property:Float r]</h3>
		<p>قيمة قناة حمراء بين 0 و 1. الافتراضي هو 1.</p>
			
		<h3>[property:Float g]</h3>
		<p>قيمة قناة خضراء بين 0 و 1. الافتراضي هو 1.</p>
			
		<h3>[property:Float b]</h3>
		<p>قيمة قناة زرقاء بين 0 و 1. الافتراضي هو 1.</p>
		
		<h2>الطرق (Methods)</h2>
		
		<h3>[method:this add]( [param:Color color] )</h3>
		<p>
		يضيف قيم RGB لـ [page:Color color] إلى قيم RGB لهذا اللون.
		</p>
		
		<h3>
		[method:this addColors]( [param:Color color1], [param:Color color2] )
		</h3>
		<p>
		يضع قيم RGB لهذا اللون على مجموع قيم RGB لـ [page:Color color1] و [page:Color color2].
		</p>
		
		<h3>[method:this addScalar]( [param:Number s] )</h3>
		<p>يضيف [page:Number s] إلى قيم RGB لهذا اللون.</p>
		
		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
		<p>
		يطبق التحول [page:Matrix3 m] على مكونات RGB لهذا اللون.
		</p>
		
		<h3>[method:Color clone]()</h3>
		<p>
		يعود بـ Color جديد مع نفس قيم [page:.r r] و [page:.g g] و [page:.b b] كهذا المربع.
		</p>
		
		<h3>[method:this copy]( [param:Color color] )</h3>
		<p>
		ينسخ معاملات [page:.r r] و [page:.g g] و [page:.b b] من [page:Color color] في هذا اللون.
		</p>
		
		<h3>[method:this convertLinearToSRGB]()</h3>
		<p>يحول هذا اللون من مساحة خطية إلى مساحة sRGB.</p>
		
		<h3>[method:this convertSRGBToLinear]()</h3>
		<p>يحول هذا اللون من مساحة sRGB إلى مساحة خطية.</p>
		
		<h3>[method:this copyLinearToSRGB]( [param:Color color] )</h3>
		<p>
		[page:Color color] — لون للنسخ.<br />
		
		ينسخ اللون المعطى في هذا اللون، ثم يحول هذا اللون من مساحة خطية إلى مساحة sRGB.
		</p>
		

		<h3>[method:this copySRGBToLinear]( [param:Color color] )</h3>
		<p>
		[page:Color color] — لون للنسخ.<br />
		
		ينسخ اللون المعطى في هذا اللون، ثم يحول هذا اللون من مساحة sRGB إلى مساحة خطية.
		</p>
		
		<h3>[method:Boolean equals]( [param:Color color] )</h3>
		<p>
		يقارن قيم RGB لـ [page:Color color] مع تلك الموجودة في هذا الكائن. يعود بـ true إذا كانت متطابقة، و false في حالة عدم التطابق.
		</p>
		
		<h3>
		[method:this fromArray]( [param:Array array], [param:Integer offset] )
		</h3>
		<p>
		[page:Array array] - [page:Array] من الأرقام العشرية على شكل [[page:Float r]، [page:Float g]، [page:Float b]].<br />
		[page:Integer offset] - إزاحة اختيارية في المجموعة.<br /><br />
		
		يضع مكونات هذا اللون بناءً على مجموعة مهيأة مثل [[page:Float r]، [page:Float g]، [page:Float b]].
		</p>
		
		<h3>
		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
		</h3>
		<p>
		[page:BufferAttribute attribute] - السمة المصدر.<br />
		[page:Integer index] - فهرس في السمة.<br /><br />
		
		يضع مكونات هذا اللون من [page:BufferAttribute attribute].
		</p>
		
		<h3>
		[method:Integer getHex]( [param:string colorSpace] = SRGBColorSpace )
		</h3>
		<p>يعود بالقيمة السداسية عشرية لهذا اللون.</p>
		
		<h3>
		[method:String getHexString]( [param:string colorSpace] = SRGBColorSpace )
		</h3>
		<p>
		يعود بالقيمة السداسية عشرية لهذا اللون كسلسلة (على سبيل المثال، 'FFFFFF').
		</p>

		<h3>
			[method:Object getHSL]( [param:Object target], [param:string colorSpace] = LinearSRGBColorSpace )
		</h3>
		<p>
		[page:Object target] — سيتم نسخ النتيجة في هذا الكائن. يضيف مفاتيح h و s و l إلى الكائن (إذا لم يكن موجودًا بالفعل).<br /><br />
			
		يحول قيم [page:.r r] و [page:.g g] و [page:.b b] لهذا اللون إلى تنسيق [link:https://en.wikipedia.org/wiki/HSL_and_HSV HSL] ويعود بكائن على الشكل:
			
		<code>
		{ 
			h: 0, 
			s: 0, 
			l: 0 
		} 
		</code>
		</p>
			
		<h3>
		[method:Color getRGB]( [param:Color target], [param:string colorSpace] = LinearSRGBColorSpace )
		</h3>
		<p>
		[page:Color target] — سيتم نسخ النتيجة في هذا الكائن.<br /><br />
			
		يعود بقيم RGB لهذا اللون كمثيل من [page:Color].
		</p>
			
		<h3>
		[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )
		</h3>
		<p>
		يعود بقيمة هذا اللون كسلسلة على طراز CSS. مثال: `rgb(255،0،0)`.
		</p>
			
		<h3>[method:this lerp]( [param:Color color], [param:Float alpha] )</h3>
		<p>
		[page:Color color] - لون للاقتراب منه.<br />
		[page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
			
		يتداخل بشكل خطي قيم RGB لهذا اللون نحو قيم RGB للحجة الممررة. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث `0.0` هذا اللون و `1.0` هو الحجة الأولى.
		</p>
			

		<h3>
			[method:this lerpColors]( [param:Color color1], [param:Color color2], [param:Float alpha] )
		</h3>
		<p>
		[page:Color color1] - اللون الابتدائي [page:Color].<br />
		[page:Color color2] - [page:Color] للتداخل نحوه.<br />
		[page:Float alpha] - عامل التداخل، عادة في الفاصل المغلق `[0، 1]`.<br /><br />
			
		يضع هذا اللون ليكون اللون المتداخل بشكل خطي بين [page:Color color1] و [page:Color color2] حيث يكون alpha هو نسبة المسافة على الخط الذي يربط بين اللونين - سيكون alpha = 0 [page:Color color1]، وسيكون alpha = 1 [page:Color color2].
		</p>
			
		<h3>[method:this lerpHSL]( [param:Color color], [param:Float alpha] )</h3>
		<p>
		[page:Color color] - لون للاقتراب منه.<br />
		[page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
			
		يتداخل بشكل خطي قيم HSL لهذا اللون نحو قيم HSL للحجة الممررة. يختلف عن [page:.lerp] الكلاسيكية بعدم التداخل مباشرة من لون إلى آخر، ولكن بدلاً من ذلك يمر عبر جميع الألوان الموجودة بين تلك الألوان. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث 0.0 هذا اللون و 1.0 هو الحجة الأولى.
		</p>
			
		<h3>[method:this multiply]( [param:Color color] )</h3>
		<p>
		يضرب قيم RGB لهذا اللون بقيم RGB لـ [page:Color color] المعطى.
		</p>
			
		<h3>[method:this multiplyScalar]( [param:Number s] )</h3>
		<p>يضرب قيم RGB لهذا اللون بـ [page:Number s].</p>
			
		<h3>
		[method:this offsetHSL]( [param:Float h], [param:Float s], [param:Float l] )
		</h3>
		<p>
		يضيف [page:Float h] و [page:Float s] و [page:Float l] المعطى إلى قيم هذا اللون. داخليًا، يحول هذا اللون قيم [page:.r r] و [page:.g g] و [page:.b b] إلى HSL، يضيف [page:Float h] و [page:Float s] و [page:Float l]، ثم يحول اللون مرة أخرى إلى RGB.
		</p>
			
		<h3>[method:this set]( [param:Color_Hex_or_String r], [param:Float g], [param:Float b] )</h3>
		<p>
		[page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
		[page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
		[page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
		
		انظر المُنشئ أعلاه للحصول على التفاصيل الكاملة حول الوسائط الممكنة. يفوض إلى [page:.copy]،
		[page:.setStyle]، [page:.setRGB] أو [page:.setHex] اعتمادًا على نوع الإدخال.
		</p>
		
		<h3>[method:this setFromVector3]( [param:Vector3 vector] )</h3>
		<p>
		يضع مكونات [page:.r r] و [page:.g g] و [page:.b b] لهذا اللون من مكونات x و y و z لـ [page:Vector3 vector] المحدد.
		</p>
		
		<h3>
		[method:this setHex]( [param:Integer hex], [param:string colorSpace] = SRGBColorSpace )
		</h3>
		<p>
		[page:Integer hex] —
		[link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet شكل ثلاثي سداسي عشر].<br /><br />
		
		يضع هذا اللون من قيمة سداسية عشرية.
		</p>
		
		<h3>
		[method:this setHSL]( [param:Float h], [param:Float s], [param:Float l], [param:string colorSpace] = LinearSRGBColorSpace )
		</h3>
		<p>
		[page:Float h] — قيمة اللون بين 0.0 و 1.0 <br />
		[page:Float s] — قيمة التشبع بين 0.0 و 1.0 <br />
		[page:Float l] — قيمة الإضاءة بين 0.0 و 1.0<br /><br />
		
		يضع اللون من قيم HSL.
		</p>
		
		<h3>
		[method:this setRGB]( [param:Float r], [param:Float g], [param:Float b], [param:string colorSpace] = LinearSRGBColorSpace )
		</h3>
		<p>
		[page:Float r] — قيمة قناة حمراء بين 0.0 و 1.0.<br />
		[page:Float g] — قيمة قناة خضراء بين 0.0 و 1.0.<br />
		[page:Float b] — قيمة قناة زرقاء بين 0.0 و 1.0.<br /><br />
		
		يضع هذا اللون من قيم RGB.
		</p>
		
		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
		<p>
		[page:Float scalar] — قيمة بين 0.0 و 1.0.<br /><br />
		
		تضع جميع مكونات اللون الثلاثة على قيمة [page:Float scalar].
		</p>
		
		<h3>
			[method:this setStyle]( [param:String style], [param:string colorSpace] = SRGBColorSpace )
		</h3>
		<p>
		[page:String style] — اللون كسلسلة على طراز CSS.<br /><br />
			
		يضع هذا اللون من سلسلة على طراز CSS. على سبيل المثال، "rgb(250، 0،0)"، "rgb(100٪، 0٪، 0٪)"، "hsl(0، 100٪، 50٪)"، "#ff0000"، "#f00" أو "red" (أو أي [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart اسم لون X11] - يتم دعم جميع أسماء الألوان الـ 140).<br />
			
		يتم قبول الألوان شفافة مثل "rgba(255، 0، 0، 0.5)" و "hsla(0، 100٪، 50٪، 0.5)" أيضًا، ولكن سيتم تجاهل إحداثية قناة ألفا.<br /><br />
			
		يرجى ملاحظة أنه بالنسبة لأسماء الألوان X11، تصبح الكلمات المتعددة مثل Dark Orange السلسلة 'darkorange'.
		</p>
			
		<h3>
		[method:this setColorName]( [param:String style], [param:string colorSpace] = SRGBColorSpace )
		</h3>
		<p>
		[page:String style] — اسم اللون (من [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart أسماء الألوان X11]).<br /><br />
			
		يضع هذا اللون من اسم لون. أسرع من طريقة [page:.setStyle] إذا كنت لا تحتاج إلى التنسيقات الأخرى على طراز CSS.<br /><br />
			
		للراحة، يتم عرض قائمة الأسماء في Color.NAMES كتجزئة:
		<code>
		Color.NAMES.aliceblue // returns 0xF0F8FF
		</code>
		</p>
			
		<h3>[method:this sub]( [param:Color color] )</h3>
		<p>
		يطرح مكونات RGB للون المحدد من مكونات RGB لهذا اللون. إذا نتج عن ذلك مكون سالب، يتم تعيين هذا المكون إلى صفر.
		</p>
			
		<h3>
		[method:Array toArray]( [param:Array array], [param:Integer offset] )
		</h3>
		<p>
		[page:Array array] - مجموعة اختيارية لتخزين اللون فيها. <br />
		[page:Integer offset] - إزاحة اختيارية في المجموعة.<br /><br />
			
		يعود بمجموعة على شكل [r, g, b].
		</p>
			
		<h3>[method:Number toJSON]()</h3>
		<p>
		هذه الطرق تحدد نتيجة التسلسل لـ [name]. يعود باللون كقيمة سداسية عشرية.
		</p>

		<h2>المصدر (Source)</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
